﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections;
using System.Web.UI.WebControls;
using mojoPortal.Web.Controls.google;
using mojoPortal.Web.Framework;
using System.Globalization;

namespace ud_Article.UI
{
    public class ArticleMostViewConfiguration
    {
        public ArticleMostViewConfiguration() { }

        public ArticleMostViewConfiguration(Hashtable settings)
        {
            LoadSettings(settings);
        }

        private void LoadSettings(Hashtable settings)
        {
            if (settings == null) { throw new ArgumentException("must pass in a hashtable of settings"); }

            useExcerpt = WebUtils.ParseBoolFromHashtable(settings, "BlogUseExcerptSetting", useExcerpt);

            titleOnly = WebUtils.ParseBoolFromHashtable(settings, "BlogShowTitleOnlySetting", titleOnly);

            showPager = WebUtils.ParseBoolFromHashtable(settings, "BlogShowPagerInListSetting", showPager);

            googleMapIncludeWithExcerpt = WebUtils.ParseBoolFromHashtable(settings, "GoogleMapIncludeWithExcerptSetting", googleMapIncludeWithExcerpt);

            enableContentRating = WebUtils.ParseBoolFromHashtable(settings, "EnableContentRatingSetting", enableContentRating);

            enableRatingComments = WebUtils.ParseBoolFromHashtable(settings, "EnableRatingCommentsSetting", enableRatingComments);

            excerptLength = WebUtils.ParseInt32FromHashtable(settings, "BlogExcerptLengthSetting", excerptLength);

            if (settings.Contains("BlogExcerptSuffixSetting"))
            {
                excerptSuffix = settings["BlogExcerptSuffixSetting"].ToString();
            }

            if (settings.Contains("BlogMoreLinkText"))
            {
                moreLinkText = settings["BlogMoreLinkText"].ToString();
            }

            if (settings.Contains("BlogAuthorSetting"))
            {
                blogAuthor = settings["BlogAuthorSetting"].ToString();
            }

            if (settings.Contains("CustomCssClassSetting"))
            {
                instanceCssClass = settings["CustomCssClassSetting"].ToString();
            }

            if (settings.Contains("BlogDateTimeFormat"))
            {
                string format = settings["BlogDateTimeFormat"].ToString().Trim();
                if (format.Length > 0)
                {
                    try
                    {
                        string d = DateTime.Now.ToString(format, CultureInfo.CurrentCulture);
                        dateTimeFormat = format;
                    }
                    catch (FormatException) { }
                }

            }

            useTagCloudForCategories = WebUtils.ParseBoolFromHashtable(settings, "BlogUseTagCloudForCategoriesSetting", useTagCloudForCategories);

            showCalendar = WebUtils.ParseBoolFromHashtable(settings, "BlogShowCalendarSetting", showCalendar);

            showCategories = WebUtils.ParseBoolFromHashtable(settings, "BlogShowCategoriesSetting", showCategories);

            showArchives = WebUtils.ParseBoolFromHashtable(settings, "BlogShowArchiveSetting", showArchives);

            showStatistics = WebUtils.ParseBoolFromHashtable(settings, "BlogShowStatisticsSetting", showStatistics);

            showFeedLinks = WebUtils.ParseBoolFromHashtable(settings, "BlogShowFeedLinksSetting", showFeedLinks);

            showAddFeedLinks = WebUtils.ParseBoolFromHashtable(settings, "BlogShowAddFeedLinksSetting", showAddFeedLinks);

            navigationOnRight = WebUtils.ParseBoolFromHashtable(settings, "BlogNavigationOnRightSetting", navigationOnRight);

            allowComments = WebUtils.ParseBoolFromHashtable(settings, "BlogAllowComments", allowComments);

            useLinkForHeading = WebUtils.ParseBoolFromHashtable(settings, "BlogUseLinkForHeading", useLinkForHeading);

            showPostAuthor = WebUtils.ParseBoolFromHashtable(settings, "ShowPostAuthorSetting", showPostAuthor);

            if (settings.Contains("GoogleMapInitialMapTypeSetting"))
            {
                string gmType = settings["GoogleMapInitialMapTypeSetting"].ToString();
                try
                {
                    mapType = (MapType)Enum.Parse(typeof(MapType), gmType);
                }
                catch (ArgumentException) { }
            }

            googleMapHeight = WebUtils.ParseInt32FromHashtable(settings, "GoogleMapHeightSetting", googleMapHeight);

            googleMapWidth = WebUtils.ParseInt32FromHashtable(settings, "GoogleMapWidthSetting", googleMapWidth);


            googleMapEnableMapType = WebUtils.ParseBoolFromHashtable(settings, "GoogleMapEnableMapTypeSetting", googleMapEnableMapType);

            googleMapEnableZoom = WebUtils.ParseBoolFromHashtable(settings, "GoogleMapEnableZoomSetting", googleMapEnableZoom);

            googleMapShowInfoWindow = WebUtils.ParseBoolFromHashtable(settings, "GoogleMapShowInfoWindowSetting", googleMapShowInfoWindow);

            googleMapEnableLocalSearch = WebUtils.ParseBoolFromHashtable(settings, "GoogleMapEnableLocalSearchSetting", googleMapEnableLocalSearch);

            googleMapEnableDirections = WebUtils.ParseBoolFromHashtable(settings, "GoogleMapEnableDirectionsSetting", googleMapEnableDirections);

            googleMapInitialZoom = WebUtils.ParseInt32FromHashtable(settings, "GoogleMapInitialZoomSetting", googleMapInitialZoom);

            pageSize = WebUtils.ParseInt32FromHashtable(settings, "BlogEntriesToShowSetting", pageSize);

            if (settings.Contains("OdiogoFeedIDSetting"))
            {
                odiogoFeedId = settings["OdiogoFeedIDSetting"].ToString();
            }

            if (settings.Contains("OdiogoPodcastUrlSetting"))
                odiogoPodcastUrl = settings["OdiogoPodcastUrlSetting"].ToString();

            hideAddThisButton = WebUtils.ParseBoolFromHashtable(settings, "BlogHideAddThisButtonSetting", hideAddThisButton);

            if (settings.Contains("BlogAddThisDotComUsernameSetting"))
            {
                addThisAccountId = settings["BlogAddThisDotComUsernameSetting"].ToString().Trim();
            }

            useAddThisMouseOverWidget = WebUtils.ParseBoolFromHashtable(settings, "BlogAddThisDotComUseMouseOverWidgetSetting", useAddThisMouseOverWidget);


            if (settings.Contains("BlogAddThisButtonImageUrlSetting"))
            {
                string buttonImage = settings["BlogAddThisButtonImageUrlSetting"].ToString().Trim();
                if (buttonImage.Length > 0)
                {
                    addThisButtonImageUrl = buttonImage;
                }
            }

            if (settings.Contains("BlogAddThisRssButtonImageUrlSetting"))
                addThisRssButtonImageUrl = settings["BlogAddThisRssButtonImageUrlSetting"].ToString().Trim();

            if (settings.Contains("BlogAddThisCustomBrandSetting"))
            {
                addThisCustomBrand = settings["BlogAddThisCustomBrandSetting"].ToString().Trim();
            }

            if (settings.Contains("BlogAddThisCustomOptionsSetting"))
            {
                addThisCustomOptions = settings["BlogAddThisCustomOptionsSetting"].ToString().Trim();
            }

            if (settings.Contains("BlogAddThisCustomLogoUrlSetting"))
            {
                addThisCustomLogoUrl = settings["BlogAddThisCustomLogoUrlSetting"].ToString().Trim();
            }

            if (settings.Contains("BlogAddThisCustomLogoBackColorSetting"))
            {
                addThisCustomLogoBackColor = settings["BlogAddThisCustomLogoBackColorSetting"].ToString().Trim();
            }

            if (settings.Contains("BlogAddThisCustomLogoForeColorSetting"))
            {
                addThisCustomLogoForeColor = settings["BlogAddThisCustomLogoForeColorSetting"].ToString().Trim();
            }

            if (settings.Contains("BlogFeedburnerFeedUrl"))
            {
                feedburnerFeedUrl = settings["BlogFeedburnerFeedUrl"].ToString().Trim();
            }

            if (settings.Contains("DisqusSiteShortName"))
            {
                disqusSiteShortName = settings["DisqusSiteShortName"].ToString();
            }

            if (settings.Contains("CommentSystemSetting"))
            {
                commentSystem = settings["CommentSystemSetting"].ToString();
            }

            if (settings.Contains("IntenseDebateAccountId"))
            {
                intenseDebateAccountId = settings["IntenseDebateAccountId"].ToString();
            }

            allowWebSiteUrlForComments = WebUtils.ParseBoolFromHashtable(settings, "AllowWebSiteUrlForComments", allowWebSiteUrlForComments);

            hideDetailsFromUnauthencticated = WebUtils.ParseBoolFromHashtable(settings, "HideDetailsFromUnauthencticated", hideDetailsFromUnauthencticated);

            if (settings.Contains("BlogCopyrightSetting"))
            {
                copyright = settings["BlogCopyrightSetting"].ToString();
            }

            showLeftContent = WebUtils.ParseBoolFromHashtable(settings, "ShowPageLeftContentSetting", showLeftContent);

            showRightContent = WebUtils.ParseBoolFromHashtable(settings, "ShowPageRightContentSetting", showRightContent);

            enableContentVersioning = WebUtils.ParseBoolFromHashtable(settings, "BlogEnableVersioningSetting", enableContentVersioning);

            defaultCommentDaysAllowed = WebUtils.ParseInt32FromHashtable(settings, "BlogCommentForDaysDefault", defaultCommentDaysAllowed);

            if (settings.Contains("BlogEditorHeightSetting"))
            {
                editorHeight = Unit.Parse(settings["BlogEditorHeightSetting"].ToString());

            }

            useCaptcha = WebUtils.ParseBoolFromHashtable(settings, "BlogUseCommentSpamBlocker", useCaptcha);

            requireAuthenticationForComments = WebUtils.ParseBoolFromHashtable(settings, "RequireAuthenticationForComments", requireAuthenticationForComments);

            notifyOnComment = WebUtils.ParseBoolFromHashtable(settings, "ContentNotifyOnComment", notifyOnComment);

            if (settings.Contains("BlogAuthorEmailSetting"))
            {
                notifyEmail = settings["BlogAuthorEmailSetting"].ToString();
            }

            useFacebookLikeButton = WebUtils.ParseBoolFromHashtable(settings, "UseFacebookLikeButton", useFacebookLikeButton);

            if (settings.Contains("FacebookLikeButtonTheme"))
            {
                facebookLikeButtonTheme = settings["FacebookLikeButtonTheme"].ToString().Trim();
            }

            facebookLikeButtonShowFaces = WebUtils.ParseBoolFromHashtable(settings, "FacebookLikeButtonShowFaces", facebookLikeButtonShowFaces);

            facebookLikeButtonWidth = WebUtils.ParseInt32FromHashtable(settings, "FacebookLikeButtonWidth", facebookLikeButtonWidth);

            facebookLikeButtonHeight = WebUtils.ParseInt32FromHashtable(settings, "FacebookLikeButtonHeight", facebookLikeButtonHeight);

            showTweetThisLink = WebUtils.ParseBoolFromHashtable(settings, "ShowTweetThisLink", showTweetThisLink);

            if (settings.Contains("UpperSidebar"))
            {
                upperSidebar = settings["UpperSidebar"].ToString();
            }

            if (settings.Contains("LowerSidebar"))
            {
                lowerSidebar = settings["LowerSidebar"].ToString();
            }

            showImage = WebUtils.ParseBoolFromHashtable(settings, "ImageShowSetting", showImage);

            if (settings.Contains("ImageCustomCssClassSetting"))
            {
                imageCssClass = settings["ImageCustomCssClassSetting"].ToString();
            }

            showOtherArticles = WebUtils.ParseBoolFromHashtable(settings, "OtherArticlesShowSetting", showOtherArticles);

            otherArticlesUsePaging = WebUtils.ParseBoolFromHashtable(settings, "OtherArticlesPagingSetting", otherArticlesUsePaging);

            if (settings.Contains("OtherArticlesCustomCssClassSetting"))
            {
                otherArticlesCssClass = settings["OtherArticlesCustomCssClassSetting"].ToString();
            }

            otherArticlesShowMoreLinkSetting = WebUtils.ParseBoolFromHashtable(settings, "OtherArticlesShowMoreLinkSetting", otherArticlesShowMoreLinkSetting);

            if (settings.Contains("OtherArticlesMoreLinkSetting"))
            {
                otherArticlesMoreLinkSetting = settings["OtherArticlesMoreLinkSetting"].ToString();
            }

            if (settings.Contains("OtherArticlesMoreLinkTextSetting"))
            {
                otherArticlesMoreLinkTextSetting = settings["OtherArticlesMoreLinkTextSetting"].ToString();
            }

            autoScrollSetting = WebUtils.ParseBoolFromHashtable(settings, "AutoScrollSetting", autoScrollSetting);

            autoScrollVerticalSetting = WebUtils.ParseBoolFromHashtable(settings, "AutoScrollVerticalSetting", autoScrollVerticalSetting);

            autoScrollCircularSetting = WebUtils.ParseBoolFromHashtable(settings, "AutoScrollCircularSetting", autoScrollCircularSetting);

            autoScrollSpeedSetting = WebUtils.ParseInt32FromHashtable(settings, "AutoScrollSpeedSetting", autoScrollSpeedSetting);

            if (settings.Contains("AutoScrollHeightWrapperSetting"))
            {
                autoScrollHeightWrapperSetting = settings["AutoScrollHeightWrapperSetting"].ToString();
            }

            if (settings.Contains("AutoScrollWidthWrapperSetting"))
            {
                autoScrollWidthWrapperSetting = settings["AutoScrollWidthWrapperSetting"].ToString();
            }

            if (settings.Contains("AutoScrollEasingSetting"))
            {
                autoScrollEasingSetting = settings["AutoScrollEasingSetting"].ToString();
            }

            autoScrollTimeSetting = WebUtils.ParseInt32FromHashtable(settings, "AutoScrollTimeSetting", autoScrollTimeSetting);

            autoScrollItemsSetting = WebUtils.ParseInt32FromHashtable(settings, "AutoScrollItemsSetting", autoScrollItemsSetting);

            maxNumberOfCharactersInTitleSetting = WebUtils.ParseInt32FromHashtable(settings, "MaxNumberOfCharactersInTitleSetting", maxNumberOfCharactersInTitleSetting);

            useTooltipSettings = WebUtils.ParseBoolFromHashtable(settings, "UseTooltipSettings", useTooltipSettings);

            if (settings.Contains("UseTooltipCssSettings"))
            {
                useTooltipCssSettings = settings["UseTooltipCssSettings"].ToString();
            }

            tooltipMaxCharSettings = WebUtils.ParseInt32FromHashtable(settings, "TooltipMaxCharSettings", tooltipMaxCharSettings);

            if (settings.Contains("TooltipEffectSettings"))
            {
                tooltipEffectSettings = settings["TooltipEffectSettings"].ToString();
            }

            tooltipDelaySettings = WebUtils.ParseInt32FromHashtable(settings, "TooltipDelaySettings", tooltipDelaySettings);

            otherArticlesPageSizeSetting = WebUtils.ParseInt32FromHashtable(settings, "OtherArticlesPageSizeSetting", otherArticlesPageSizeSetting);

            otherArticlesPagingSetting = WebUtils.ParseBoolFromHashtable(settings, "OtherArticlesPagingSetting", otherArticlesPagingSetting);

            if (settings.Contains("ArticleModuleSelectorSetting"))
            {
                articleModuleSelector = settings["ArticleModuleSelectorSetting"].ToString();
            }
            useHotArticle = WebUtils.ParseBoolFromHashtable(settings, "UseHotArticleSetting", useHotArticle);
        }

        private string upperSidebar = string.Empty;

        public string UpperSidebar
        {
            get { return upperSidebar; }
        }

        private string lowerSidebar = string.Empty;

        public string LowerSidebar
        {
            get { return lowerSidebar; }
        }

        private bool showTweetThisLink = false;

        public bool ShowTweetThisLink
        {
            get { return showTweetThisLink; }
        }

        private bool useFacebookLikeButton = false;

        public bool UseFacebookLikeButton
        {
            get { return useFacebookLikeButton; }
        }

        private int facebookLikeButtonHeight = 35;

        public int FacebookLikeButtonHeight
        {
            get { return facebookLikeButtonHeight; }
        }

        private int facebookLikeButtonWidth = 450;

        public int FacebookLikeButtonWidth
        {
            get { return facebookLikeButtonWidth; }
        }

        private bool facebookLikeButtonShowFaces = false;

        public bool FacebookLikeButtonShowFaces
        {
            get { return facebookLikeButtonShowFaces; }
        }

        private string facebookLikeButtonTheme = "light";

        public string FacebookLikeButtonTheme
        {
            get { return facebookLikeButtonTheme; }
        }


        private string notifyEmail = string.Empty;

        public string NotifyEmail
        {
            get { return notifyEmail; }
        }

        private bool notifyOnComment = false;

        public bool NotifyOnComment
        {
            get { return notifyOnComment; }
        }

        private bool requireAuthenticationForComments = false;

        public bool RequireAuthenticationForComments
        {
            get { return requireAuthenticationForComments; }
        }

        private bool useCaptcha = true;

        public bool UseCaptcha
        {
            get { return useCaptcha; }
        }

        private Unit editorHeight = Unit.Parse("350");

        public Unit EditorHeight
        {
            get { return editorHeight; }
        }

        private bool enableContentVersioning = false;

        public bool EnableContentVersioning
        {
            get { return enableContentVersioning; }
        }

        private int defaultCommentDaysAllowed = 90;

        public int DefaultCommentDaysAllowed
        {
            get { return defaultCommentDaysAllowed; }
        }

        private bool showLeftContent = false;

        public bool ShowLeftContent
        {
            get { return showLeftContent; }
        }


        private bool showRightContent = false;

        public bool ShowRightContent
        {
            get { return showRightContent; }
        }


        private string copyright = string.Empty;

        public string Copyright
        {
            get { return copyright; }
        }

        private bool hideDetailsFromUnauthencticated = false;

        public bool HideDetailsFromUnauthencticated
        {
            get { return hideDetailsFromUnauthencticated; }
        }

        private bool allowWebSiteUrlForComments = true;

        public bool AllowWebSiteUrlForComments
        {
            get { return allowWebSiteUrlForComments; }
        }

        private string commentSystem = "internal";

        public string CommentSystem
        {
            get { return commentSystem; }
        }

        private string intenseDebateAccountId = string.Empty;

        public string IntenseDebateAccountId
        {
            get { return intenseDebateAccountId; }
        }

        private string disqusSiteShortName = string.Empty;

        public string DisqusSiteShortName
        {
            get { return disqusSiteShortName; }
        }

        private string feedburnerFeedUrl = string.Empty;

        public string FeedburnerFeedUrl
        {
            get { return feedburnerFeedUrl; }
        }

        private string addThisCustomLogoForeColor = string.Empty;

        public string AddThisCustomLogoForeColor
        {
            get { return addThisCustomLogoForeColor; }
        }

        private string addThisCustomLogoBackColor = string.Empty;

        public string AddThisCustomLogoBackColor
        {
            get { return addThisCustomLogoBackColor; }
        }

        private string addThisCustomLogoUrl = string.Empty;

        public string AddThisCustomLogoUrl
        {
            get { return addThisCustomLogoUrl; }
        }

        private string addThisCustomOptions = string.Empty;

        public string AddThisCustomOptions
        {
            get { return addThisCustomOptions; }
        }

        private string addThisCustomBrand = string.Empty;

        public string AddThisCustomBrand
        {
            get { return addThisCustomBrand; }
        }

        private string addThisButtonImageUrl = "~/Data/SiteImages/addthissharebutton.gif";

        public string AddThisButtonImageUrl
        {
            get { return addThisButtonImageUrl; }
        }

        private string addThisRssButtonImageUrl = "~/Data/SiteImages/addthisrss.gif";

        public string AddThisRssButtonImageUrl
        {
            get { return addThisRssButtonImageUrl; }
        }

        private bool useAddThisMouseOverWidget = true;

        public bool UseAddThisMouseOverWidget
        {
            get { return useAddThisMouseOverWidget; }
        }

        private string addThisAccountId = string.Empty;

        public string AddThisAccountId
        {
            get { return addThisAccountId; }
        }

        private string odiogoFeedId = string.Empty;

        public string OdiogoFeedId
        {
            get { return odiogoFeedId; }
        }

        private string odiogoPodcastUrl = string.Empty;

        public string OdiogoPodcastUrl
        {
            get { return odiogoPodcastUrl; }
        }

        private int pageSize = 10;

        public int PageSize
        {
            get { return pageSize; }
        }

        private int googleMapInitialZoom = 13;

        public int GoogleMapInitialZoom
        {
            get { return googleMapInitialZoom; }
        }

        private bool googleMapEnableDirections = false;

        public bool GoogleMapEnableDirections
        {
            get { return googleMapEnableDirections; }
        }

        private bool googleMapEnableLocalSearch = false;

        public bool GoogleMapEnableLocalSearch
        {
            get { return googleMapEnableLocalSearch; }
        }

        private bool googleMapShowInfoWindow = false;

        public bool GoogleMapShowInfoWindow
        {
            get { return googleMapShowInfoWindow; }
        }

        private bool googleMapEnableZoom = false;

        public bool GoogleMapEnableZoom
        {
            get { return googleMapEnableZoom; }
        }

        private bool googleMapEnableMapType = false;

        public bool GoogleMapEnableMapType
        {
            get { return googleMapEnableMapType; }
        }

        private int googleMapWidth = 500;

        public int GoogleMapWidth
        {
            get { return googleMapWidth; }
        }

        private int googleMapHeight = 300;

        public int GoogleMapHeight
        {
            get { return googleMapHeight; }
        }

        private MapType mapType = MapType.G_SATELLITE_MAP;

        public MapType GoogleMapType
        {
            get { return mapType; }
        }

        private bool showPostAuthor = false;

        public bool ShowPostAuthor
        {
            get { return showPostAuthor; }
        }

        private bool useLinkForHeading = true;

        public bool UseLinkForHeading
        {
            get { return useLinkForHeading; }
        }

        private bool allowComments = false;

        public bool AllowComments
        {
            get { return allowComments; }
        }

        private bool navigationOnRight = false;

        public bool NavigationOnRight
        {
            get { return navigationOnRight; }
        }

        private bool showAddFeedLinks = false;

        public bool ShowAddFeedLinks
        {
            get { return showAddFeedLinks; }
        }

        private bool showFeedLinks = false;

        public bool ShowFeedLinks
        {
            get { return showFeedLinks; }
        }

        private bool showStatistics = false;

        public bool ShowStatistics
        {
            get { return showStatistics; }
        }

        private bool showArchives = false;

        public bool ShowArchives
        {
            get { return showArchives; }
        }

        private bool showCategories = false;

        public bool ShowCategories
        {
            get { return showCategories; }
        }

        private bool showCalendar = false;

        public bool ShowCalendar
        {
            get { return showCalendar; }
        }

        private bool useTagCloudForCategories = false;

        public bool UseTagCloudForCategories
        {
            get { return useTagCloudForCategories; }
        }

        private string dateTimeFormat = CultureInfo.CurrentCulture.DateTimeFormat.FullDateTimePattern;

        public string DateTimeFormat
        {
            get { return dateTimeFormat; }
        }

        private bool useExcerpt = false;

        public bool UseExcerpt
        {
            get { return useExcerpt; }
        }

        private bool titleOnly = false;

        public bool TitleOnly
        {
            get { return titleOnly; }
        }

        private bool showPager = false;

        public bool ShowPager
        {
            get { return showPager; }
        }

        private bool googleMapIncludeWithExcerpt = false;

        public bool GoogleMapIncludeWithExcerpt
        {
            get { return googleMapIncludeWithExcerpt; }
        }

        private bool enableContentRating = false;

        public bool EnableContentRating
        {
            get { return enableContentRating; }
        }

        private bool enableRatingComments = false;

        public bool EnableRatingComments
        {
            get { return enableRatingComments; }
        }

        private bool hideAddThisButton = true;

        public bool HideAddThisButton
        {
            get { return hideAddThisButton; }
        }

        private int excerptLength = 250;

        public int ExcerptLength
        {
            get { return excerptLength; }
        }

        private string excerptSuffix = "...";

        public string ExcerptSuffix
        {
            get { return excerptSuffix; }
        }

        private string moreLinkText = "read more";

        public string MoreLinkText
        {
            get { return moreLinkText; }
        }

        private string blogAuthor = string.Empty;

        public string BlogAuthor
        {
            get { return blogAuthor; }
        }

        private string instanceCssClass = string.Empty;

        public string InstanceCssClass
        {
            get { return instanceCssClass; }
        }

        private bool showImage = true;

        public bool ShowImage
        {
            get { return showImage; }
        }

        private string imageCssClass = string.Empty;

        public string ImageCssClass
        {
            get { return imageCssClass; }
        }

        private bool showOtherArticles = true;

        public bool ShowOtherArticles
        {
            get { return showOtherArticles; }
        }

        private bool otherArticlesUsePaging = false;

        public bool OtherArticlesUsePaging
        {
            get { return otherArticlesUsePaging; }
        }

        private string otherArticlesCssClass = string.Empty;

        public string OtherArticlesCssClass
        {
            get { return otherArticlesCssClass; }
        }

        private bool otherArticlesShowMoreLinkSetting = false;

        public bool OtherArticlesShowMoreLinkSetting
        {
            get { return otherArticlesShowMoreLinkSetting; }
        }

        private string otherArticlesMoreLinkSetting = string.Empty;

        public string OtherArticlesMoreLinkSetting
        {
            get { return otherArticlesMoreLinkSetting; }
        }

        private string otherArticlesMoreLinkTextSetting = string.Empty;
        public string OtherArticlesMoreLinkTextSetting
        {
            get { return otherArticlesMoreLinkTextSetting; }
        }

        private string articleModuleSelector = string.Empty;

        public string ArticleModuleSelector
        {
            get { return articleModuleSelector; }
        }

        private bool autoScrollSetting = false;

        public bool AutoScrollSetting
        {
            get { return autoScrollSetting; }
        }

        private bool autoScrollVerticalSetting = false;

        public bool AutoScrollVerticalSetting
        {
            get { return autoScrollVerticalSetting; }
        }

        private bool autoScrollCircularSetting = false;

        public bool AutoScrollCircularSetting
        {
            get { return autoScrollCircularSetting; }
        }

        private int autoScrollSpeedSetting = 5000;

        public int AutoScrollSpeedSetting
        {
            get { return autoScrollSpeedSetting; }
        }

        private string autoScrollHeightWrapperSetting = "100%";

        public string AutoScrollHeightWrapperSetting
        {
            get { return autoScrollHeightWrapperSetting; }
        }

        private string autoScrollWidthWrapperSetting = "100%";

        public string AutoScrollWidthWrapperSetting
        {
            get { return autoScrollWidthWrapperSetting; }
        }

        private string autoScrollEasingSetting = "linear";

        public string AutoScrollEasingSetting
        {
            get { return autoScrollEasingSetting; }
        }

        private int autoScrollTimeSetting = 1000;

        public int AutoScrollTimeSetting
        {
            get { return autoScrollTimeSetting; }
        }

        private int autoScrollItemsSetting = 1;

        public int AutoScrollItemsSetting
        {
            get { return autoScrollItemsSetting; }
        }

        private int maxNumberOfCharactersInTitleSetting = 100;

        public int MaxNumberOfCharactersInTitleSetting
        {
            get { return maxNumberOfCharactersInTitleSetting; }
        }

        private bool useTooltipSettings = false;

        public bool UseTooltipSettings
        {
            get { return useTooltipSettings; }
        }

        private string useTooltipCssSettings = "tooltip";

        public string UseTooltipCssSettings
        {
            get { return useTooltipCssSettings; }
        }

        private int tooltipMaxCharSettings = 250;

        public int TooltipMaxCharSettings
        {
            get { return tooltipMaxCharSettings; }
        }

        private string tooltipEffectSettings = "slide";

        public string TooltipEffectSettings
        {
            get { return tooltipEffectSettings; }
        }

        private int tooltipDelaySettings = 0;

        public int TooltipDelaySettings
        {
            get { return tooltipDelaySettings; }
        }

        private bool otherArticlesPagingSetting = true;

        public bool OtherArticlesPagingSetting
        {
            get { return otherArticlesPagingSetting; }
        }

        private int otherArticlesPageSizeSetting = 5;

        public int OtherArticlesPageSizeSetting
        {
            get { return otherArticlesPageSizeSetting; }
        }

        private bool useHotArticle = false;

        public bool UseHotArticle
        {
            get { return useHotArticle; }
        }
    }
}